package br.com.hstar.client.usuario;

import br.com.hstar.client.ServiceFactory;
import br.com.hstar.client.TelaPrincipal;
import br.com.hstar.client.util.FormPanel;

import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.ClickListener;
import com.google.gwt.user.client.ui.PasswordTextBox;
import com.google.gwt.user.client.ui.RootPanel;
import com.google.gwt.user.client.ui.Widget;

public class AlterarSenhaPanel extends FormPanel {

	private PasswordTextBox senhaAnt;
	private PasswordTextBox senhaNov;
	private PasswordTextBox confirmSenhaNov;
	private Button loginButt;
	
	public AlterarSenhaPanel(String _title, final Long userId) {
		super(_title);
		
		senhaAnt 	  = addPassTextBox("Senha Atual:", "");
		senhaNov 	  = addPassTextBox("Nova Senha:", "");
		confirmSenhaNov = addPassTextBox("Confimação de Senha", "");
		loginButt = addButton("Alterar");
		
		loginButt.addClickListener(new ClickListener() {
			public void onClick(Widget sender) {
				if(!confirmSenhaNov.getText().equals(senhaNov.getText()))
				{	
					Window.alert("A senha e a confirmação devem ser iguais e não podem ser vazios");
					return;
				}	
				if(!confirmSenhaNov.getText().trim().equals("") && 
						!senhaNov.getText().trim().equals("") &&
						!senhaAnt.getText().trim().equals("") )
				{
					Window.alert("Todos os campos devem ser preenchidos");
					return;
				}	
				ServiceFactory.createUsuarioService().alterarSenha(
						 senhaAnt.getText(), senhaNov.getText(), userId, new LoginAsyncCallback());
			}
		});
	}

	/**
	 * Login callback
	 */
	private class LoginAsyncCallback implements AsyncCallback {
		public void onFailure(Throwable caught) {
			Window.alert("A senha e a confirmação devem ser iguais");
		}

		public void onSuccess(Object result) {
			Window.alert("Senha Alterada !");
			RootPanel.get("boxContent").clear();
			RootPanel.get("boxContent").add(TelaPrincipal.getInstance());
		}
	}
	
}
